package com.qianfeng.zhangwei.day27;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.widget.RadioGroup;

import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;
import com.qianfeng.zhangwei.day27.fragment.GroupBuyFragment;
import com.qianfeng.zhangwei.day27.fragment.MeFragment;
import com.qianfeng.zhangwei.day27.fragment.MoreFragment;
import com.qianfeng.zhangwei.day27.fragment.SellerFragment;
import com.qianfeng.zhangwei.day27.fragment.TestFragment;
import com.qianfeng.zhangwei.day27.utils.FragmentTabUtils;

import java.util.ArrayList;
import java.util.List;

/**
 * Sliding 三种方式去初始化
 *
 * 1> 继承开源库的slidingActivity   getSlidingMenu() 初始化
 * 2>  new SlidingMenu();(最常用的一种方式)
 * 3> 在布局文件中声明 通过findbyid来初始化
 *
 * 流行主界面的搭建
 * 顶部tab导航栏
 *
 * 1>横向滑动 + fragment
 * 2>ActionBar + ViewPager + fragment
 * 3>第三方ui开源库  ViewPagerIndcotor
 *
 * 底部tab导航栏
 * RadioGroup + fragment
 *
 *
 * 样式 style
 * 作用: 提取公共属性
 * 如何定义
 * 第一步  在res/values/style  下声明 style的名称
 * 第二步  声明layoutparams属性  就是控件的属性
 */
public class MainActivity extends AppCompatActivity implements FragmentTabUtils.OnRgsExtraCheckedChangedListener {
    SlidingMenu menu;
    private RadioGroup rgs;


    private List<Fragment> fragments = new ArrayList<>();

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
//        initMenu();
    }

    /**
     * 初始化UI
     */
    private void initView() {
        rgs = (RadioGroup) this.findViewById(R.id.main_rgs);
        fragments.add(new GroupBuyFragment());
        fragments.add(new SellerFragment());
        fragments.add(new MeFragment());
        fragments.add(new MoreFragment());
        FragmentTabUtils utils = new FragmentTabUtils(getSupportFragmentManager(), fragments, R.id.fragment_main_container,rgs);
        utils.setOnRgsExtraCheckedChangedListener(this);
    }

//    @Override
//    public void onCheckedChanged(RadioGroup group, int checkedId) {
//        switch (checkedId) {
//            case R.id.main_footer_groupbuy_rb:
//                getSupportFragmentManager().beginTransaction().add(R.id.fragment_main_container, new GroupBuyFragment()).commit();
//
//
//
//                break;
//            case R.id.main_footer_seller_rb:
//                getSupportFragmentManager().beginTransaction().add(R.id.fragment_main_container, new SellerFragment()).commit();
//                break;
//            case R.id.main_footer_me_rb:
//                getSupportFragmentManager().beginTransaction().add(R.id.fragment_main_container, new MeFragment()).commit();
//                break;
//            case R.id.main_footer_more_rb:
//                getSupportFragmentManager().beginTransaction().add(R.id.fragment_main_container, new MoreFragment()).commit();
//                break;
//
//        }
//
//    }

    private void initMenu() {
        menu = new SlidingMenu(this);
        /**
         *SlidingMenu.LEFT  左侧滑
         *SlidingMenu.RIGHT 右侧滑
         *SlidingMenu.LEFT_RIGHT  左右都能侧滑
         *
         */
        menu.setMode(SlidingMenu.LEFT);

        /**
         * 触摸模式三种
         *SlidingMenu.TOUCHMODE_FULLSCREEN  全屏触摸侧滑
         *SlidingMenu.TOUCHMODE_MARGIN 边缘触摸侧滑(解决手势冲突)
         *SlidingMenu.TOUCHMODE_NONE 不可以通过触摸侧滑
         *
         */
        menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
        //设置侧滑菜单的宽度
        menu.setBehindOffsetRes(R.dimen.menu_offset_with);

        /**
         * 设置显示的内容view
         */
        menu.setMenu(R.layout.menu_left_layout);


//        menu.setSecondaryMenu(R.layout.menu_right_layout);
//        menu.setMenu(view);

        menu.attachToActivity(this, SlidingMenu.SLIDING_WINDOW);
        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
        /**
         * 界面相同数据不同的时候
         */
        transaction.replace(R.id.fragment_menu_container, TestFragment.newInstance("haha", "hehe")).commit();
//        transaction.add(R.id.fragment_menu_container, TestFragment.newInstance("haha", "hehe")).commit();

    }

    @Override
    public void OnRgsExtraCheckedChanged(RadioGroup radioGroup, int checkedId, int index) {

    }
}
